﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Coolite.Ext.Web;
using QFD.Controller;

namespace QFD.View.Requisito
{
    public partial class grdRequisito : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectRequisito = from requisito in context.GetTable<REQUISITO>()
                                             from tipoRequisito in context.GetTable<TIPOREQUISITO>()
                                             where requisito.CDTIPOREQ == tipoRequisito.CDTIPOREQUISITO
                                             select new { requisito.CDREQUISITO, requisito.DSREQUISITO, tipoRequisito.CDTIPOREQUISITO, tipoRequisito.DSTIPOREQUISITO};
                var lista = selectRequisito.ToList();

                if (!Ext.IsAjaxRequest)
                {
                    this.StoreRequisito.DataSource = lista;
                    this.StoreRequisito.DataBind();
                }
            }
        }

        public Store GridStore
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            this.requisito.GridStore = this.StoreRequisito;
            this.GridStore = this.StoreRequisito;
        }

        protected void Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectRequisito = from requisito in context.GetTable<REQUISITO>()
                                      from tipoRequisito in context.GetTable<TIPOREQUISITO>()
                                      where requisito.CDTIPOREQ == tipoRequisito.CDTIPOREQUISITO
                                      select new { requisito.CDREQUISITO, requisito.DSREQUISITO, tipoRequisito.CDTIPOREQUISITO, tipoRequisito.DSTIPOREQUISITO };
                var lista = selectRequisito.ToList();
                this.StoreRequisito.DataSource = lista;
                this.StoreRequisito.DataBind();
            }
        }

        protected void EditarRequisito(object sender, AjaxEventArgs e)
        {
            string cdRequisito = e.ExtraParams["cdRequisito"];
            this.requisito.SetRequisito(ControllerRequisito.getByRequisito(int.Parse(cdRequisito)));
            this.requisito.ShowRequisito();
        }

        protected void ConfirmDeleteRequisito(object sender, AjaxEventArgs e)
        {
            string cdRequisito = e.ExtraParams["cdRequisito"];
            REQUISITO requisito = ControllerRequisito.getByRequisito(int.Parse(cdRequisito));
            ControllerRequisito.deleteRequisito(requisito);
            this.GridStore.AddScript(string.Format("{0}.reload();", this.GridStore.ClientID));
            Ext.Msg.Alert("Alerta!", "Requisito <b>" + requisito.DSREQUISITO + " </b> excluído com sucesso!").Show();
        }
    }
}